import {
  createStore
} from 'vuex'
import createPersistedstate from 'vuex-persistedstate' // vuex-持久化
import cart from './modules/cart'
import category from './modules/category'
import user from './modules/user'
export default createStore({
  modules: {
    cart,
    category,
    user
  },
  // 配置插件
  plugins: [
    // 默认存储在localstorage
    createPersistedstate({
      // 本地存储名字
      key: 'eribbit-client-pc-store',
      // 指定需要存储的模块
      path: ['user', 'cart']
    })
  ]
})
// // A模块
// const modulesA = {
//   state: {
//     username: 'modulesA'
//   },
//   getters: {
//     newName (state) {
//       return state.username + '!!!'
//     }
//   },
//   mutations: {
//     updatedName (state) {
//       state.username = 'modulesAAAAA'
//     }
//   }
// }
// // B模块
// const modulesB = {
//   namespaced: true,
//   state: {
//     username: 'modulesB'
//   },
//   getters: {
//     newName (state) {
//       return state.username + '!!!'
//     }
//   },
//   mutations: {
//     updatedName (state) {
//       state.username = 'modulesBBBB'
//     }
//   },
//   actions: {
//     updatedName (ctx) {
//       // 发生请求
//       setTimeout(() => {
//         ctx.commit('updatedName')
//       }, 1000)
//     }
//   }
// }
// export default createStore({
//   modules: {
//     modulesA,
//     modulesB
//   }
// })

// vue2.0 创建仓库 new Vuex.Store({})
// vue3.0 创建仓库 createStore({})
// export default createStore({
//   state: {
//     username: 'zs'
//   },
//   getters: {
//     newName (state) {
//       return state.username + '!!!'
//     }
//   },
//   mutations: {
//     updatedName (state) {
//       state.username = 'ls'
//     }
//   },
//   actions: {
//     updatedName (ctx) {
//       //发生请求
//       setTimeout(() => {
//         ctx.commit('updatedName')
//       }, 1000)
//     }
//   },
//   modules: {}
// })
